

<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
  <meta charset="utf-8" />
  
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  
  <title>nrgpy.convert package &mdash; nrgpy 0.10.19 documentation</title>
  

  
  <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
  <link rel="stylesheet" href="_static/pygments.css" type="text/css" />

  
  

  
  

  

  
  <!--[if lt IE 9]>
    <script src="_static/js/html5shiv.min.js"></script>
  <![endif]-->
  
    
      <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
        <script src="_static/jquery.js"></script>
        <script src="_static/underscore.js"></script>
        <script src="_static/doctools.js"></script>
    
    <script type="text/javascript" src="_static/js/theme.js"></script>

    
    <link rel="index" title="Index" href="genindex.html" />
    <link rel="search" title="Search" href="search.html" /> 
</head>

<body class="wy-body-for-nav">

   
  <div class="wy-grid-for-nav">
    
    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
      <div class="wy-side-scroll">
        <div class="wy-side-nav-search" >
          

          
            <a href="index.html" class="icon icon-home"> nrgpy
          

          
          </a>

          
            
            
          

          
<div role="search">
  <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
    <input type="text" name="q" placeholder="Search docs" />
    <input type="hidden" name="check_keywords" value="yes" />
    <input type="hidden" name="area" value="default" />
  </form>
</div>

          
        </div>

        
        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
          
            
            
              
            
            
              <!-- Local TOC -->
              <div class="local-toc"><ul>
<li><a class="reference internal" href="#">nrgpy.convert package</a><ul>
<li><a class="reference internal" href="#submodules">Submodules</a></li>
<li><a class="reference internal" href="#module-nrgpy.convert.convert_rld">nrgpy.convert.convert_rld module</a></li>
<li><a class="reference internal" href="#module-nrgpy.convert.convert_rwd">nrgpy.convert.convert_rwd module</a></li>
<li><a class="reference internal" href="#module-nrgpy.convert">Module contents</a></li>
</ul>
</li>
</ul>
</div>
            
          
        </div>
        
      </div>
    </nav>

    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">

      
      <nav class="wy-nav-top" aria-label="top navigation">
        
          <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
          <a href="index.html">nrgpy</a>
        
      </nav>


      <div class="wy-nav-content">
        
        <div class="rst-content">
        
          

















<div role="navigation" aria-label="breadcrumbs navigation">

  <ul class="wy-breadcrumbs">
    
      <li><a href="index.html" class="icon icon-home"></a> &raquo;</li>
        
      <li>nrgpy.convert package</li>
    
    
      <li class="wy-breadcrumbs-aside">
        
          
            <a href="_sources/nrgpy.convert.rst.txt" rel="nofollow"> View page source</a>
          
        
      </li>
    
  </ul>

  
  <hr/>
</div>
          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
           <div itemprop="articleBody">
            
  <div class="section" id="nrgpy-convert-package">
<h1>nrgpy.convert package<a class="headerlink" href="#nrgpy-convert-package" title="Permalink to this headline">¶</a></h1>
<div class="section" id="submodules">
<h2>Submodules<a class="headerlink" href="#submodules" title="Permalink to this headline">¶</a></h2>
</div>
<div class="section" id="module-nrgpy.convert.convert_rld">
<span id="nrgpy-convert-convert-rld-module"></span><h2>nrgpy.convert.convert_rld module<a class="headerlink" href="#module-nrgpy.convert.convert_rld" title="Permalink to this headline">¶</a></h2>
<dl class="py class">
<dt id="nrgpy.convert.convert_rld.local">
<em class="property">class </em><code class="sig-prename descclassname">nrgpy.convert.convert_rld.</code><code class="sig-name descname">local</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">rld_dir</span><span class="o">=</span><span class="default_value">''</span></em>, <em class="sig-param"><span class="n">out_dir</span><span class="o">=</span><span class="default_value">''</span></em>, <em class="sig-param"><span class="n">encryption_pass</span><span class="o">=</span><span class="default_value">''</span></em>, <em class="sig-param"><span class="n">hex_key</span><span class="o">=</span><span class="default_value">''</span></em>, <em class="sig-param"><span class="n">filename</span><span class="o">=</span><span class="default_value">''</span></em>, <em class="sig-param"><span class="n">sympro_path</span><span class="o">=</span><span class="default_value">'&quot;C:/Program Files (x86)/Renewable NRG Systems/SymPRO Desktop/SymPRODesktop.exe&quot;'</span></em>, <em class="sig-param"><span class="n">process_type</span><span class="o">=</span><span class="default_value">'convert'</span></em>, <em class="sig-param"><span class="n">convert_type</span><span class="o">=</span><span class="default_value">'meas'</span></em>, <em class="sig-param"><span class="n">nec</span><span class="o">=</span><span class="default_value">''</span></em>, <em class="sig-param"><span class="n">site_filter</span><span class="o">=</span><span class="default_value">''</span></em>, <em class="sig-param"><span class="n">site_file</span><span class="o">=</span><span class="default_value">''</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/nrgpy/convert/convert_rld.html#local"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#nrgpy.convert.convert_rld.local" title="Permalink to this definition">¶</a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
<p>For handling NRG SymphoniePRO Data Logger raw data files in the <a href="#id1"><span class="problematic" id="id2">*</span></a>.rld format.</p>
<p>This method uses locally installed SymphoniePRO Desktop software to convert <a href="#id3"><span class="problematic" id="id4">*</span></a>.rld files to txt format (tab-delimited-text).</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><dl class="simple">
<dt><strong>rld_dir</strong><span class="classifier">str, optional</span></dt><dd><p>specify directory. Note for unc values, you
will need to escape all forward slashes, e.g.
rld_dir = “\soltechsupportdata&quot;
or use the r’path      odir’ approach</p>
</dd>
<dt><strong>out_dir</strong><span class="classifier">str, optional</span></dt><dd><p>see note for rld_dir.</p>
</dd>
<dt><strong>encryption_pass</strong><span class="classifier">str</span></dt><dd><p>specify data encryption password if logger is set up for that.</p>
</dd>
<dt><strong>hex_key</strong><span class="classifier">str</span></dt><dd><p>specify if using hex data encryption key</p>
</dd>
<dt><strong>sympro_path</strong><span class="classifier">str</span></dt><dd><p>default is “C:Program Files (x86)Renewable NRG SystemsSymPRO DesktopSymPRODesktop.exe”</p>
</dd>
<dt><strong>process_type</strong><span class="classifier">str</span></dt><dd><p>[convert], or import</p>
</dd>
<dt><strong>convert_type</strong><span class="classifier">str</span></dt><dd><p>‘meas’, alternately specify ‘comm’, ‘diag’, ‘sample’, or ‘events’</p>
</dd>
<dt><strong>nec</strong><span class="classifier">str</span></dt><dd><p>path to nec file</p>
</dd>
<dt><strong>site_filter</strong><span class="classifier">str</span></dt><dd><p>specify part or all of the file you’d like to filter on, like site_filter=’123456_2018-09’
would filter on site 123456 and only the month of September in 2018.</p>
</dd>
<dt><strong>site_file</strong><span class="classifier">bool or str</span></dt><dd><p>set to True to use local ndb site file, or set to path to an alternate ndb site file</p>
</dd>
</dl>
</dd>
</dl>
<p class="rubric">Examples</p>
<p>Convert a folder of RLD files to Text with SymphoniePRO Desktop Software</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">nrgpy.convert_rld</span> <span class="kn">import</span> <span class="n">local</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">converter</span> <span class="o">=</span> <span class="n">local</span><span class="p">(</span>
<span class="go">        rld_dir=&#39;/path/to/rld/files&#39;,</span>
<span class="go">        out_dir=/path/to/txt/outputs,</span>
<span class="go">        file_filter=&#39;123456_2020-01&#39;, # for files from January 2020</span>
<span class="go">    )</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">converter</span><span class="o">.</span><span class="n">convert</span><span class="p">()</span>
</pre></div>
</div>
<p class="rubric">Methods</p>
<table class="longtable docutils align-default">
<colgroup>
<col style="width: 10%" />
<col style="width: 90%" />
</colgroup>
<tbody>
<tr class="row-odd"><td><p><a class="reference internal" href="#nrgpy.convert.convert_rld.local.directory" title="nrgpy.convert.convert_rld.local.directory"><code class="xref py py-obj docutils literal notranslate"><span class="pre">directory</span></code></a>()</p></td>
<td><p>processes all rld files in self.rld_dir, outputs to txt files to out_dir</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="#nrgpy.convert.convert_rld.local.rename_rlds" title="nrgpy.convert.convert_rld.local.rename_rlds"><code class="xref py py-obj docutils literal notranslate"><span class="pre">rename_rlds</span></code></a>(**kwargs)</p></td>
<td><p>uses SymPRO utility NrgRldSiteSerialRename.exe to rename files with site number and logger serial number.</p></td>
</tr>
</tbody>
</table>
<table class="docutils align-default">
<colgroup>
<col style="width: 60%" />
<col style="width: 40%" />
</colgroup>
<tbody>
<tr class="row-odd"><td><p><strong>convert</strong></p></td>
<td></td>
</tr>
<tr class="row-even"><td><p><strong>process</strong></p></td>
<td></td>
</tr>
<tr class="row-odd"><td><p><strong>single_file</strong></p></td>
<td></td>
</tr>
</tbody>
</table>
<dl class="py method">
<dt id="nrgpy.convert.convert_rld.local.convert">
<code class="sig-name descname">convert</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/nrgpy/convert/convert_rld.html#local.convert"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#nrgpy.convert.convert_rld.local.convert" title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>

<dl class="py method">
<dt id="nrgpy.convert.convert_rld.local.directory">
<code class="sig-name descname">directory</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/nrgpy/convert/convert_rld.html#local.directory"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#nrgpy.convert.convert_rld.local.directory" title="Permalink to this definition">¶</a></dt>
<dd><p>processes all rld files in self.rld_dir, outputs to txt files to out_dir</p>
</dd></dl>

<dl class="py method">
<dt id="nrgpy.convert.convert_rld.local.process">
<code class="sig-name descname">process</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/nrgpy/convert/convert_rld.html#local.process"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#nrgpy.convert.convert_rld.local.process" title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>

<dl class="py method">
<dt id="nrgpy.convert.convert_rld.local.rename_rlds">
<code class="sig-name descname">rename_rlds</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/nrgpy/convert/convert_rld.html#local.rename_rlds"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#nrgpy.convert.convert_rld.local.rename_rlds" title="Permalink to this definition">¶</a></dt>
<dd><p>uses SymPRO utility NrgRldSiteSerialRename.exe to rename files with site number and logger serial number.</p>
<p>This function is only compatible with Windows&gt;=7 AND
a local installation of SymphoniePRO Desktop software</p>
</dd></dl>

<dl class="py method">
<dt id="nrgpy.convert.convert_rld.local.single_file">
<code class="sig-name descname">single_file</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">filepath</span><span class="o">=</span><span class="default_value">''</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/nrgpy/convert/convert_rld.html#local.single_file"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#nrgpy.convert.convert_rld.local.single_file" title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>

</dd></dl>

</div>
<div class="section" id="module-nrgpy.convert.convert_rwd">
<span id="nrgpy-convert-convert-rwd-module"></span><h2>nrgpy.convert.convert_rwd module<a class="headerlink" href="#module-nrgpy.convert.convert_rwd" title="Permalink to this headline">¶</a></h2>
<dl class="py class">
<dt id="nrgpy.convert.convert_rwd.local">
<em class="property">class </em><code class="sig-prename descclassname">nrgpy.convert.convert_rwd.</code><code class="sig-name descname">local</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">rwd_dir</span><span class="o">=</span><span class="default_value">''</span></em>, <em class="sig-param"><span class="n">out_dir</span><span class="o">=</span><span class="default_value">''</span></em>, <em class="sig-param"><span class="n">filename</span><span class="o">=</span><span class="default_value">''</span></em>, <em class="sig-param"><span class="n">encryption_pin</span><span class="o">=</span><span class="default_value">''</span></em>, <em class="sig-param"><span class="n">sdr_path</span><span class="o">=</span><span class="default_value">'C:/NRG/SymDR/SDR.exe'</span></em>, <em class="sig-param"><span class="n">convert_type</span><span class="o">=</span><span class="default_value">'meas'</span></em>, <em class="sig-param"><span class="n">file_filter</span><span class="o">=</span><span class="default_value">''</span></em>, <em class="sig-param"><span class="n">wine_folder</span><span class="o">=</span><span class="default_value">'~/.wine/drive_c/'</span></em>, <em class="sig-param"><span class="n">use_site_file</span><span class="o">=</span><span class="default_value">False</span></em>, <em class="sig-param"><span class="n">raw_mode</span><span class="o">=</span><span class="default_value">False</span></em>, <em class="sig-param"><span class="n">progress_bar</span><span class="o">=</span><span class="default_value">True</span></em>, <em class="sig-param"><span class="n">show_result</span><span class="o">=</span><span class="default_value">True</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/nrgpy/convert/convert_rwd.html#local"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#nrgpy.convert.convert_rwd.local" title="Permalink to this definition">¶</a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
<p>nrgpy.convert_rwd.local - use local installation of Symphonie Data Retriever (SDR)
to convert <a href="#id5"><span class="problematic" id="id6">*</span></a>.RWD files to <a href="#id7"><span class="problematic" id="id8">*</span></a>.TXT</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><dl class="simple">
<dt><strong>filename</strong><span class="classifier">str</span></dt><dd><p>if populated, a single file is exported</p>
</dd>
<dt><strong>encryption_pin</strong><span class="classifier">str</span></dt><dd><p>four digit pin, only used for encrypted files</p>
</dd>
<dt><strong>sdr_path</strong><span class="classifier">str</span></dt><dd><p>r‘“C:/NRG/SymDR/SDR.exe”’, may be any path</p>
</dd>
<dt><strong>file_filter</strong><span class="classifier">str</span></dt><dd><p>filters files on text in filename</p>
</dd>
<dt><strong>rwd_dir</strong><span class="classifier">str</span></dt><dd><p>folder to check for RWD files</p>
</dd>
<dt><strong>out_dir</strong><span class="classifier">str</span></dt><dd><p>folder to save exported TXT files into</p>
</dd>
<dt><strong>wine_folder</strong><span class="classifier">str</span></dt><dd><p>‘~/.wine/drive_c/’, for linux installations</p>
</dd>
<dt><strong>use_site_file</strong><span class="classifier">bool</span></dt><dd><p>set to True to use local site file</p>
</dd>
<dt><strong>raw_mode</strong><span class="classifier">bool</span></dt><dd><p>set to True to convert raw counts and voltages</p>
</dd>
<dt><strong>progress_bar</strong><span class="classifier">bool</span></dt><dd><p>set to False to see individual file conversions</p>
</dd>
<dt><strong>show_result</strong><span class="classifier">bool</span></dt><dd><p>set to False to hide prints to console</p>
</dd>
</dl>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><dl class="simple">
<dt>None</dt><dd></dd>
</dl>
</dd>
</dl>
<p class="rubric">Examples</p>
<p>Convert a folder of RWD files to Text with SymphoniePRO Desktop Software</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">nrgpy.convert_rwd</span> <span class="kn">import</span> <span class="n">local</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">converter</span> <span class="o">=</span> <span class="n">local</span><span class="p">(</span>
<span class="go">        rwd_dir=&#39;/path/to/rwd/files&#39;,</span>
<span class="go">        out_dir=/path/to/txt/outputs,</span>
<span class="go">        file_filter=&#39;1234202001&#39;, # for files from January 2020</span>
<span class="go">    )</span>
</pre></div>
</div>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">converter</span><span class="o">.</span><span class="n">convert</span><span class="p">()</span>
</pre></div>
</div>
<p>Convert a folder … on Linux; this assumes you followed the instructions
in the ‘’’SDR_Linux_README.md’’’ file.</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">getpass</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">nrgpy</span>
</pre></div>
</div>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">username</span> <span class="o">=</span> <span class="n">getpass</span><span class="o">.</span><span class="n">getuser</span><span class="p">()</span>
</pre></div>
</div>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">rwd_dir</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;/home/</span><span class="si">{</span><span class="n">username</span><span class="si">}</span><span class="s2">/data/symplus3/raw&quot;</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">txt_dir</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;/home/</span><span class="si">{</span><span class="n">username</span><span class="si">}</span><span class="s2">/data/symplus3/export&quot;</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">wine_folder</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;/home/</span><span class="si">{</span><span class="n">username</span><span class="si">}</span><span class="s2">/prefix32/drive_c&quot;</span>
</pre></div>
</div>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">converter</span> <span class="o">=</span> <span class="n">nrgpy</span><span class="o">.</span><span class="n">convert_rwd</span><span class="o">.</span><span class="n">local</span><span class="p">(</span>
<span class="go">        rwd_dir=rwd_dir,</span>
<span class="go">        out_dir=txt_dir,</span>
<span class="go">        wine_folder=wine_folder</span>
<span class="go">    )</span>
</pre></div>
</div>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">converter</span><span class="o">.</span><span class="n">convert</span><span class="p">()</span>
</pre></div>
</div>
<p class="rubric">Methods</p>
<table class="longtable docutils align-default">
<colgroup>
<col style="width: 10%" />
<col style="width: 90%" />
</colgroup>
<tbody>
<tr class="row-odd"><td><p><a class="reference internal" href="#nrgpy.convert.convert_rwd.local.check_sdr" title="nrgpy.convert.convert_rwd.local.check_sdr"><code class="xref py py-obj docutils literal notranslate"><span class="pre">check_sdr</span></code></a>()</p></td>
<td><p>determine if SDR is installed</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="#nrgpy.convert.convert_rwd.local.convert" title="nrgpy.convert.convert_rwd.local.convert"><code class="xref py py-obj docutils literal notranslate"><span class="pre">convert</span></code></a>()</p></td>
<td><p>process rwd files</p></td>
</tr>
</tbody>
</table>
<dl class="py method">
<dt id="nrgpy.convert.convert_rwd.local.check_sdr">
<code class="sig-name descname">check_sdr</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/nrgpy/convert/convert_rwd.html#local.check_sdr"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#nrgpy.convert.convert_rwd.local.check_sdr" title="Permalink to this definition">¶</a></dt>
<dd><p>determine if SDR is installed</p>
</dd></dl>

<dl class="py method">
<dt id="nrgpy.convert.convert_rwd.local.convert">
<code class="sig-name descname">convert</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/nrgpy/convert/convert_rwd.html#local.convert"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#nrgpy.convert.convert_rwd.local.convert" title="Permalink to this definition">¶</a></dt>
<dd><p>process rwd files</p>
<p>create list of RWD files that match filtering
copy RWD files to RawData directory
iterate through files</p>
</dd></dl>

</dd></dl>

</div>
<div class="section" id="module-nrgpy.convert">
<span id="module-contents"></span><h2>Module contents<a class="headerlink" href="#module-nrgpy.convert" title="Permalink to this headline">¶</a></h2>
</div>
</div>


           </div>
           
          </div>
          <footer>

  <hr/>

  <div role="contentinfo">
    <p>
        &#169; Copyright 2020, NRG Systems, Technical Services.

    </p>
  </div>
    
    
    
    Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
    
    <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
    
    provided by <a href="https://readthedocs.org">Read the Docs</a>. 

</footer>
        </div>
      </div>

    </section>

  </div>
  

  <script type="text/javascript">
      jQuery(function () {
          SphinxRtdTheme.Navigation.enable(true);
      });
  </script>

  
  
    
   

</body>
</html>